/**
 * 
 */
package com.woniuxy.amusementparkos.permission.Service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.woniuxy.amusementparkos.dao.fzw.MenuDao;
import com.woniuxy.amusementparkos.dao.fzw.OrganizationDao;
import com.woniuxy.amusementparkos.entity.fzw.Menu;
import com.woniuxy.amusementparkos.exception.fzw.MenuInUseException;
import com.woniuxy.amusementparkos.exception.fzw.OrganizationInUseException;
import com.woniuxy.amusementparkos.permission.Service.MenuService;

/**
 *
 * @author fzw
 *
 * 2020年5月7日上午1:27:42
 */
@Service
public class MenuServiceImp implements MenuService {
	@Autowired
	MenuDao menuDao;
	@Override
	public List<Menu> selectAllMenuByPageNumber(Integer page, Integer limit) {
		return menuDao.selectAllMenuByPageNumber((page-1)*10,limit);
	}

	@Override
	public void insertMenu(Menu menu) {
		menuDao.insertMenu(menu);
	}

	@Override
	public void updateMenu(Menu menu) {
		menuDao.updateMenu(menu);
	} 
	
	@Override
	public void selectMenuByMenuIds(int[] menu_ids) {
				//默认为-1，若查到用户，则根据-1判断
				int user_id=-1;
				//创建一个集合用来存放用户正在使用的角色id
				List<Integer> usingMenu = new ArrayList<Integer>();
				for(Integer menu_id:menu_ids) {
				user_id=-1;//重新赋值
				user_id=menuDao.selectUserByMenu_id(menu_id);
				//如果查询到用户不为空，则说明该角色正在被使用，则存放在数组里
				if(user_id!=-1) {
					usingMenu.add(menu_id);
				}
			}
				//最后判断数组里是否存放有已被用户使用的组织，有则抛异常，无法删除
				if(!usingMenu.isEmpty()) {
					//将正在使用的角色名查询出来
					String[] menuNames=menuDao.selectMenusByIds(usingMenu);
					String names="";
					for(String name:menuNames) {
						names+=name+"、";
					}
					names=names.substring(0,names.length()-1);
					System.out.println(names);
					throw new MenuInUseException("菜单：  "+names+"      正在使用中，无法删除！");
				}
		
	}

	@Override
	public void deleteMenus(int[] menu_ids) {
		menuDao.deleteMenus(menu_ids);
	}

	@Override
	public List<Menu> selectAllMenu() {
		return menuDao.selectAllMenu();
	}


	@Override
	public Long selectCount() {
		return menuDao.selectCount();
	}
	

}
